Writing

Feb 2, 2026 4 min read

Shipping a design system nobody hates

The systems that survive aren't the most complete ones. They're the ones that made the next screen easier to build than to improvise.

Every design system I've seen fail failed the same way: it was built as a library when it needed to be built as a bargain. The bargain is simple — use the system, and your screen gets easier to build and harder to get wrong. Break that bargain once and engineers will route around you forever.

Start from the screen, not the token

The tempting way to start is bottom-up: colors, then type, then spacing, then components, then — eighteen months later — a screen. We started with the three screens the team built most often and worked backwards. If a token didn't earn its place on a real screen, it didn't ship. The system stayed small and suspiciously useful.

Name things after decisions

A color called blue-600 tells you what it is. A color called accent tells you what it's for — and quietly forbids you from using it as decoration. The renaming sounds cosmetic; it's actually the whole game. Every token name is a tiny piece of design judgment that ships with the system and works while you sleep.

Let it be wrong in public

The healthiest thing we did was a monthly hour where anyone could bring a screen the system made worse. Sometimes the screen was wrong; often the system was. Fixing it in public kept the bargain visible: this thing bends toward your work, so use it.

Completeness was never the goal. A system nobody hates is a system people reach for on a deadline — that's the only adoption metric that matters.